home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Strate…Tools for the Enterprise / Microsoft Internet Strategy & Tools for the Enterprise.iso / bkoffice / inetsrv.nts / nt351qfe.usa / mips / update.inf < prev    next >
INI File  |  1995-11-16  |  39KB  |  886 lines

  1. [FileKeyedClasses]
  2.     Hal            = hal.dll
  3.     Ntoskrnl       = ntoskrnl.exe
  4. [FilesKeyedSections]
  5.     FilesHal       = $(STF_HALDEST)
  6.     FilesNtoskrnl  = $(STF_WINDOWSSYSPATH)
  7. [FilesHal]
  8.  
  9. [FilesNtoskrnl]
  10.     NTKRNLMP = 1, NTKRNLMP.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  11.     NTOSKRNL = 1, NTOSKRNL.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  12.  
  13. [FileSections]
  14.     FilesPrimary        = C:
  15.     FilesOsLoader       = $(STF_OSLDEST)
  16.     FilesPal            = $(STF_HALDEST)
  17.     FilesWinnt          = $(STF_WINDOWSPATH)
  18.     FilesSystem32       = $(STF_WINDOWSSYSPATH)
  19.     FilesSystem         = $(STF_WINDOWSPATH)\system
  20.     FilesDrivers        = $(STF_WINDOWSSYSPATH)\drivers
  21.     FilesConfig         = $(STF_WINDOWSSYSPATH)\config
  22.     FilesWinspool       = $(STF_WINDOWSSYSPATH)\spool
  23.     FilesPrnDriver      = $(STF_WINDOWSSYSPATH)\spool\drivers\$(!STF_PRNPLATFORM)\1
  24.     FilesPrnProc        = $(STF_WINDOWSSYSPATH)\spool\prtprocs\$(!STF_PRNPLATFORM)
  25.     FilesDbgCom         = $(STF_WINDOWSPATH)\symbols\com
  26.     FilesDbgCpl         = $(STF_WINDOWSPATH)\symbols\cpl
  27.     FilesDbgDll         = $(STF_WINDOWSPATH)\symbols\dll
  28.     FilesDbgDrv         = $(STF_WINDOWSPATH)\symbols\drv
  29.     FilesDbgExe         = $(STF_WINDOWSPATH)\symbols\exe
  30.     FilesDbgScr         = $(STF_WINDOWSPATH)\symbols\scr
  31.     FilesDbgSys         = $(STF_WINDOWSPATH)\symbols\sys
  32. [FileSectionsCopyAlways]
  33.     FilesSystem32CopyAlways = $(STF_WINDOWSSYSPATH)
  34.     FilesDriversCopyAlways  = $(STF_WINDOWSSYSPATH)\drivers
  35. [FileSectionsWINNT]
  36.     FilesInfWinnt       = $(STF_WINDOWSSYSPATH)
  37. [FileSectionsLANMANNT]
  38.     FilesInfLanmanNT    = $(STF_WINDOWSSYSPATH)
  39. [FileSectionsCopyAlwaysWINNT]
  40.     FilesSystem32CopyAlwaysWinnt = $(STF_WINDOWSSYSPATH)
  41. [FileSectionsCopyAlwaysLANMANNT]
  42.     FilesSystem32CopyAlwaysLanmanNT = $(STF_WINDOWSSYSPATH)
  43. [FilesPrimary]
  44.  
  45. [FilesOsLoader]
  46.  
  47. [FilesPal]
  48.  
  49. [FilesWinnt]
  50.  
  51. [FilesSystem32]
  52. 1 = 1, ADVAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  53. 2 = 1, BROWSER.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  54. 3 = 1, CMD.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  55. 4 = 1, CSRSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  56. 5 = 1, CSRSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  57. 6 = 1, DHCPSSVC.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  58. 7 = 1, FTP.EXE     , RENAME=$(NEWFILE), NOLOG, UNDO
  59. 8 = 1, FTPSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  60. 9 = 1, FTSRCH.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  61. 10 = 1, GLSRV.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  62. 11 = 1, IMAGEHLP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  63. 12 = 1, INETMIB1.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  64. 13 = 1, KBDUK.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  65. 14 = 1, KERNEL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  66. 15 = 1, KRNL286.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  67. 16 = 1, KRNL386.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  68. 17 = 1, LOCALSPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  69. 18 = 1, LPRMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  70. 19 = 1, LSASRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  71. 20 = 1, LSASS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  72. 21 = 1, MSGINA.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  73. 22 = 1, NETAPI32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  74. 23 = 1, NETUI2.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  75. 24 = 1, NTBACKUP.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  76. 25 = 1, NTDLL.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  77. 26 = 1, NTLMSSPS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  78. 27 = 1, NTVDM.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  79. 28 = 1, NWAPI16.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  80. 29 = 1, NWPROVAU.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  81. 30 = 1, NWWKS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  82. 31 = 1, OLE2DISP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  83. 32 = 1, OLE2NLS.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  84. 33 = 1, OLE32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  85. 34 = 1, OLEAUT32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  86. 35 = 1, OLETHK32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  87. 36 = 1, OPENGL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  88. 37 = 1, PERFMON.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  89. 38 = 1, PROGMAN.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  90. 39 = 1, QV.DLL      , RENAME=$(NEWFILE), NOLOG, UNDO
  91. 40 = 1, RASCHAP.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  92. 41 = 1, RASNBFCP.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  93. 42 = 1, RASPPPEN.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  94. 43 = 1, RASSRV.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  95. 44 = 1, ROUTE.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  96. 45 = 1, RPCLTC1.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  97. 46 = 1, RPCLTC3.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  98. 47 = 1, RPCLTC5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  99. 48 = 1, RPCLTC6.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  100. 49 = 1, RPCLTC7.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  101. 50 = 1, RPCLTS5.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  102. 51 = 1, RPCRT4.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  103. 52 = 1, RPCSS.EXE   , RENAME=$(NEWFILE), NOLOG, UNDO
  104. 53 = 1, RPLSVC.EXE  , RENAME=$(NEWFILE), NOLOG, UNDO
  105. 54 = 1, SAMLIB.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  106. 55 = 1, SAMSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  107. 56 = 1, SECURITY.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  108. 57 = 1, SENDFL32.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  109. 58 = 1, SFMMON.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  110. 59 = 1, SFMPRINT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  111. 60 = 1, SHELL32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  112. 61 = 1, SRVSVC.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  113. 62 = 1, TYPELIB.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  114. 63 = 1, UNTFS.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  115. 64 = 1, USER32.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  116. 65 = 1, USERINIT.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  117. 66 = 1, WIN32SPL.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  118. 67 = 1, WINFILE.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  119. 68 = 1, WINHLP32.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  120. 69 = 1, WINLOGON.EXE, RENAME=$(NEWFILE), NOLOG, UNDO
  121. 70 = 1, WINS.EXE    , RENAME=$(NEWFILE), NOLOG, UNDO
  122. 71 = 1, WINSRV.DLL  , RENAME=$(NEWFILE), NOLOG, UNDO
  123. 72 = 1, WOW32.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  124. 73 = 1, WOWEXEC.EXE , RENAME=$(NEWFILE), NOLOG, UNDO
  125. 74 = 1, WOWFAXUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  126. 75 = 1, WSOCK32.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  127. 76 = 1, PROBREP.TXT , RENAME=$(NEWFILE), NOLOG, UNDO
  128.  
  129. [FilesSystem]
  130.  
  131. [FilesDrivers]
  132. 1 = 1, AFD.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  133. 2 = 1, AHA154X.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  134. 3 = 1, AIC78XX.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  135. 4 = 1, ATAPI.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  136. 5 = 1, ATI.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  137. 6 = 1, BHNT.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  138. 7 = 1, CIRRUS.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  139. 8 = 1, DC21X4.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  140. 9 = 1, DEFEA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  141. 10 = 1, DPTSCSI.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  142. 11 = 1, ELNKMC.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  143. 12 = 1, NCRC700.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  144. 13 = 1, NDIS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  145. 14 = 1, NE3200.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  146. 15 = 1, NETBT.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  147. 16 = 1, NPMCA.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  148. 17 = 1, NTFS.SYS    , RENAME=$(NEWFILE), NOLOG, UNDO
  149. 18 = 1, NWLNKIPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  150. 19 = 1, NWLNKNB.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  151. 20 = 1, NWLNKRIP.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  152. 21 = 1, NWLNKSPX.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  153. 22 = 1, NWRDR.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  154. 23 = 1, PCMCIA.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  155. 24 = 1, RDR.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  156. 25 = 1, S3.SYS      , RENAME=$(NEWFILE), NOLOG, UNDO
  157. 26 = 1, SCSIDISK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  158. 27 = 1, SFMATALK.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  159. 28 = 1, SFMSRV.SYS  , RENAME=$(NEWFILE), NOLOG, UNDO
  160. 29 = 1, SRV.SYS     , RENAME=$(NEWFILE), NOLOG, UNDO
  161. 30 = 1, TCPIP.SYS   , RENAME=$(NEWFILE), NOLOG, UNDO
  162. 31 = 1, STREAMS.SYS , RENAME=$(NEWFILE), NOLOG, UNDO
  163. 32 = 1, ASYNCMAC.SYS, RENAME=$(NEWFILE), NOLOG, UNDO
  164.  
  165. [FilesConfig]
  166. [FilesWinspool]
  167. [FilesPrnDriver]
  168. 1 = 1, DICONIX.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  169. 2 = 1, HPPCL5MS.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  170. 3 = 1, PSCRIPT.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  171. 4 = 1, PSCRPTUI.DLL, RENAME=$(NEWFILE), NOLOG, UNDO
  172. 5 = 1, RASDD.DLL   , RENAME=$(NEWFILE), NOLOG, UNDO
  173. 6 = 1, RASDDUI.DLL , RENAME=$(NEWFILE), NOLOG, UNDO
  174.  
  175. [FilesPrnProc]
  176.  
  177. [FilesDbgCom]
  178. [FilesDbgCpl]
  179. [FilesDbgDll]
  180. [FilesDbgDrv]
  181. [FilesDbgExe]
  182. [FilesDbgScr]
  183. [FilesDbgSys]
  184. [FilesInfWinnt]
  185.  
  186. [FilesInfLanmanNT]
  187. 1 = 1, NWDOC.HLP, RENAME=$(NEWFILE), NOLOG, UNDO
  188.  
  189. [FilesSystem32CopyAlways]
  190.  
  191. [FilesDriversCopyAlways]
  192. [FilesSystem32CopyAlwaysWINNT]
  193. [FilesSystem32CopyAlwaysLANMANNT]
  194. [ProcessorID]
  195.     ProcessorID_I386  = I386
  196.     ProcessorID_I486  = I486
  197.     ProcessorID_I586  = I586
  198.     ProcessorID_R4000 = R4000
  199. [UiVars]
  200.     STF_PLATFORMDET    = "" ? $(!LIBHANDLE) GetPlatform
  201.     STF_CSDVER         = 768
  202.     STF_BUILDVER       = 1057
  203.     STF_CSD1_NT35      = 256
  204.     STF_NT31_BUILDVER  = 528
  205.     STF_NT35_BUILDVER  = 807
  206.     STF_NT351_BUILDVER = 1057
  207.     STF_NT351_MAJORVER = 3
  208.     STF_NT351_MINORVER = 51
  209.     STF_PRIMARY        = "C:"
  210.     STF_NTDRIVE        = ""
  211.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  212.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  213.     STF_CONTROLSET     = CurrentControlSet
  214.     VolumeList         = {} ? $(!LIBHANDLE) GetHardDriveLetters
  215.     VolumeFSList       = {} ? $(!LIBHANDLE) GetHardDriveFileSystems
  216.     VolumeFreeList     = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace
  217.     DisketteList       = {} ? $(!LIBHANDLE) GetFloppyDriveLetters
  218. [FreeSpaceI386]
  219.     RequiredFreeWinnt  = 25
  220. [FreeSpaceMips]
  221.     RequiredFreeWinnt  = 32
  222. [FreeSpaceppc]
  223.     RequiredFreeWinnt  = 32
  224. [FreeSpaceAlpha]
  225.     RequiredFreeWinnt  = 27
  226. [NVRAMVars]
  227.     SystemPartition = "" ? $(!LIBHANDLE) GetNVRAMVar SYSTEMPARTITION
  228.     OsLoader        = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADER
  229.     OsLoadPartition = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADPARTITION
  230.     OsLoadFilename  = "" ? $(!LIBHANDLE) GetNVRAMVar OSLOADFILENAME
  231. [Shell Commands]
  232.     set-title "Windows NT Setup"
  233.     set-subst CR = "\r"
  234.     set-subst LF = "\n"
  235.     set STF_LANGUAGE = ENG
  236.     read-syms Strings
  237.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard1)
  238.     set BillboardPushed = TRUE
  239.     set !LIBHANDLE      = ""
  240.     set !PATCHLIBHANDLE = ""
  241.     install   LoadSetupLibrary
  242.     read-syms ProductType
  243.     ifstr(i) $(!STF_PLATFORM) == I386
  244.         set STF_PRNPLATFORM = "w32x86"
  245.     else-ifstr(i) $(!STF_PLATFORM) == Mips
  246.         set STF_PRNPLATFORM = "w32mips"
  247.     else-ifstr(i) $(!STF_PLATFORM) == ppc
  248.         set STF_PRNPLATFORM = "w32ppc"
  249.     else-ifstr(i) $(!STF_PLATFORM) == Alpha
  250.         set STF_PRNPLATFORM = "w32alpha"
  251.     endif
  252.     read-syms UiVars
  253.     detect    UiVars
  254.     read-syms FreeSpace$(!STF_PLATFORM)
  255.     ifstr(i) $(STF_PLATFORM) != $(STF_PLATFORMDET)
  256.          ifstr(i) $(BillboardPushed) == TRUE
  257.              shell "subroutn.inf" PopBillboard
  258.              set BillboardPushed = FALSE
  259.          endif
  260.          shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String1)
  261.          goto patchnotdone
  262.     endif
  263.     shell "registry.inf" CheckSetupModify
  264.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  265.         ifstr(i) $(BillboardPushed) == TRUE
  266.             shell "subroutn.inf" PopBillboard
  267.             set BillboardPushed = FALSE
  268.         endif
  269.         Debug-Output "shelling CheckSetupModify failed"
  270.         goto patchnotdone
  271.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  272.         ifstr(i) $(BillboardPushed) == TRUE
  273.             shell "subroutn.inf" PopBillboard
  274.             set BillboardPushed = FALSE
  275.         endif
  276.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  277.         goto patchnotdone
  278.     endif
  279.     install   LoadPatchLibrary
  280.     shell "" GetCheckedFree
  281.     ifint $($ShellCode) == $(!SHELL_CODE_OK)
  282.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  283.             ifstr(i) $($R1) == "checked"
  284.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String15)
  285.                 goto patchnotdone
  286.             endif
  287.         endif
  288.     endif
  289.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMajorVersion
  290.     ifint $(STATUS) > $(STF_NT351_MAJORVER)
  291.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  292.         goto patchnotdone
  293.     else-ifint $(STATUS) = $(STF_NT351_MAJORVER)
  294.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckWindowsMinorVersion
  295.         ifint $(STATUS) > $(STF_NT351_MINORVER)
  296.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  297.             goto patchnotdone
  298.         endif
  299.     endif
  300.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), CheckBuildVersion
  301.     ifint $(STATUS) <= $(STF_NT35_BUILDVER)
  302.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String16)
  303.         goto patchnotdone
  304.     else-ifint $(STATUS) < $(STF_NT351_BUILDVER)
  305.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String17)
  306.         goto patchnotdone
  307.     else-ifint $(STATUS) > $(STF_NT351_BUILDVER)
  308.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String18)
  309.         goto patchnotdone
  310.     endif
  311.     ifstr(i) $(!STF_PLATFORM) == ppc
  312.         OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" 33554432 KeyCurrentVersion
  313.         ifstr(i) $(KeyCurrentVersion) != ""
  314.             GetRegValue $(KeyCurrentVersion) "CSDVersion" CSDVersionList
  315.             ifstr(i) $(CSDVersionList) == "Power Managed Version X"
  316.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  317.                 goto patchnotdone
  318.             endif
  319.             GetRegValue $(KeyCurrentVersion) "PowerManagedVersion" PMVersionList
  320.             ifstr(i) $(PMVersionList) != ""
  321.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String19)
  322.                 goto patchnotdone
  323.             endif
  324.         endif
  325.     endif
  326. skip_patchvercheck = +
  327.     GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
  328.     ifint *($(VolumeFreeList), ~($(VolumeList), $(!STF_NTDRIVE))) < $(RequiredFreeWinnt)
  329.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String13a)$(RequiredFreeWinnt)$(String13b)$(!STF_NTDRIVE)$(String13c)
  330.         goto patchnotdone
  331.     endif
  332.     set STF_PRODUCT = ""
  333.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
  334.     ifstr(i) $(KeyProductOption) != ""
  335.         GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
  336.         set TempProductType = *($(ProductTypeList),4)
  337.         ifstr(i) $(TempProductType) == "winnt"
  338.             set !STF_PRODUCT = WINNT
  339.             set !PRODUCT_DIR = WINNT
  340.         else-ifstr(i) $(TempProductType) == "lanmannt"
  341.             set !STF_PRODUCT = LANMANNT
  342.             set !PRODUCT_DIR = NTAS
  343.         else-ifstr(i) $(TempProductType) == "servernt"
  344.             set !STF_PRODUCT = SERVERNT
  345.             set !PRODUCT_DIR = NTAS
  346.         endif
  347.         CloseRegKey $(KeyProductOptions)
  348.     endif
  349.     ifstr(i) $(STF_PRODUCT) == ""
  350.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String14)
  351.         goto patchnotdone
  352.     endif
  353.     ifstr(i) $(!STF_PLATFORM) == I386
  354.         set STF_HALDEST = $(!STF_WINDOWSSYSPATH)
  355.         set STF_OSLDEST = C:\
  356.     else
  357.         read-syms NVRAMVars
  358.         detect    NVRAMVars
  359.         LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetOsLoaderDest         +
  360.                                                          $(SystemPartition) +
  361.                                                          $(OsLoader)        +
  362.                                                          $(OsLoadPartition) +
  363.                                                          $(OsLoadFilename)
  364.         ifstr(i) $(STATUS) == ERROR
  365.             goto patchnotdone
  366.         else
  367.             set STF_OSLDEST = $(STATUS)
  368.             set STF_HALDEST = $(STATUS)
  369.         endif
  370.     endif
  371.     read-syms FilesKeyedSections
  372.     set KeyedClassKeys  = ^(FileKeyedClasses, 0)
  373.     set KeyedClassFiles = ^(FileKeyedClasses, 1)
  374.     set KeyedClassFilesList = {}
  375.     ForListDo $(KeyedClassKeys)
  376.         set TmpKey       = Files$($)
  377.         set TmpFile      = #(FileKeyedClasses, $($), 1)
  378.         set TmpFilePath  = $($(TmpKey))\$(TmpFile)
  379.         set KeyedClassFilesList = >($(KeyedClassFilesList), $(TmpFilePath))
  380.     EndForListDo
  381.     LibraryProcedure STATUS,$(!PATCHLIBHANDLE), GetFileTypes $(KeyedClassFilesList)
  382.     ifstr(i) $(STATUS) == ERROR
  383.         goto patchnotdone
  384.     else-ifstr(i) $(STATUS) == SETUPLOGNOTPRESENT
  385.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) FATAL $(String11)
  386.         goto patchnotdone
  387.     else
  388.         ForListDo $(KeyedClassKeys)
  389.             set $($)Type = *($(STATUS), $(#))
  390.         EndForListDo
  391.     endif
  392.     ifstr(i) $(BillboardPushed) == TRUE
  393.         shell "subroutn.inf" PopBillboard
  394.         set BillboardPushed = FALSE
  395.     endif
  396.     shell "" QueryOkCancel $(String9)
  397.     ifstr(i) $($R1) == "OK"
  398.     else
  399.         set String = $(String12)
  400.         goto finish2
  401.     endif
  402.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard2)
  403.     set BillboardPushed = TRUE
  404.     set MoveFileExList  = {}
  405.     read-syms FileSections
  406.     set FileSectionsList = ^(FileSections, 0)
  407.     set FileSource  = $(!STF_SRCDIR)
  408.     ForListDo $(FileSectionsList)
  409.         set FileSection = $($)
  410.         set FileDest    = $($($))
  411.         set FileList    = ^($(FileSection), 0)
  412.         ForListDo $(FileList)
  413.             set FileKey = $($)
  414.             set File    = #($(FileSection), $(FileKey), 2)
  415.             set FileDestFullPath = $(FileDest)\$(File)
  416.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  417.             ifstr(i) $(STATUS) == YES
  418.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  419.                 ifstr(i) $(STATUS) == ERROR
  420.                     goto patchnotdone
  421.                 else
  422.                     ifstr(i) $(STATUS) == "YES"
  423.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  424.                         ifstr(i) $(NEWFILE) == ERROR
  425.                             goto patchnotdone
  426.                         else
  427.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  428.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  429.                         endif
  430.                     else
  431.                         set NEWFILE = $(File)
  432.                     endif
  433.                     install Install-File
  434.                 endif
  435.             endif
  436.         EndForListDo
  437.     EndForListDO
  438.     set FileSource  = $(!STF_SRCDIR)
  439.     ForListDo $(KeyedClassKeys)
  440.         set FileSection = Files$($)
  441.         set FileDest    = $($(FileSection))
  442.         set FileKey     = $($($)Type)
  443.         set KeyedClassChoices = ^(Files$($), 0)
  444.         ifcontains(i) $(FileKey) in $(KeyedClassChoices)
  445.             set File             = #(FileKeyedClasses, $($), 1)
  446.             set FileDestFullPath = $(FileDest)\$(File)
  447.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  448.             ifstr(i) $(STATUS) == YES
  449.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  450.                 ifstr(i) $(STATUS) == ERROR
  451.                     goto patchnotdone
  452.                 else
  453.                     ifstr(i) $(STATUS) == "YES"
  454.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  455.                         ifstr(i) $(NEWFILE) == ERROR
  456.                             goto patchnotdone
  457.                         else
  458.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  459.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  460.                         endif
  461.                     else
  462.                         set NEWFILE = $(File)
  463.                     endif
  464.                     install Install-File
  465.                 endif
  466.             endif
  467.         endif
  468.     EndForListDo
  469.     ifstr(i) $(STF_PRODUCT) == "WINNT"
  470.         set TEMP_PRODUCT = WINNT
  471.     else
  472.         set TEMP_PRODUCT = LANMANNT
  473.     endif
  474.     read-syms FileSections$(TEMP_PRODUCT)
  475.     set FileSectionsList = ^(FileSections$(TEMP_PRODUCT), 0)
  476.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  477.     ForListDo $(FileSectionsList)
  478.         set FileSection = $($)
  479.         set FileDest    = $($($))
  480.         set FileList    = ^($(FileSection), 0)
  481.         ForListDo $(FileList)
  482.             set FileKey = $($)
  483.             set File    = #($(FileSection), $(FileKey), 2)
  484.             set FileDestFullPath = $(FileDest)\$(File)
  485.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FileDestFullPath)
  486.             ifstr(i) $(STATUS) == YES
  487.                 LibraryProcedure STATUS, $(!PATCHLIBHANDLE), IsFileOpenedExclusive $(FileDestFullPath)
  488.                 ifstr(i) $(STATUS) == ERROR
  489.                     goto patchnotdone
  490.                 else
  491.                     ifstr(i) $(STATUS) == "YES"
  492.                         LibraryProcedure NEWFILE, $(!PATCHLIBHANDLE), GenerateTemporary $(FileDest)
  493.                         ifstr(i) $(NEWFILE) == ERROR
  494.                             goto patchnotdone
  495.                         else
  496.                             set FileComp = {$(FileDest)\$(NEWFILE), $(FileDestFullPath)}
  497.                             set MoveFileExList = >($(MoveFileExList), $(FileComp))
  498.                         endif
  499.                     else
  500.                         set NEWFILE = $(File)
  501.                     endif
  502.                     install Install-File
  503.                 endif
  504.             endif
  505.         EndForListDo
  506.     EndForListDO
  507.     ifstr(i) $(BillboardPushed) == TRUE
  508.         shell "subroutn.inf" PopBillboard
  509.         set BillboardPushed = FALSE
  510.     endif
  511.     read-syms FileSectionsCopyAlways
  512.     set FileSectionsList = ^(FileSectionsCopyAlways, 0)
  513.     set FileSource  = $(!STF_SRCDIR)
  514.     ForListDo $(FileSectionsList)
  515.         set FileSection = $($)
  516.         set FileDest    = $($($))
  517.         set FileList    = ^($(FileSection), 0)
  518.         ForListDo $(FileList)
  519.             set FileKey = $($)
  520.             set File    = #($(FileSection), $(FileKey), 2)
  521.             set NEWFILE = $(File)
  522.             set FileDestFullPath = $(FileDest)\$(File)
  523.             install Install-File
  524.         EndForListDo
  525.     EndForListDO
  526.     read-syms FileSectionsCopyAlways$(TEMP_PRODUCT)
  527.     set FileSectionsList = ^(FileSectionsCopyAlways$(TEMP_PRODUCT), 0)
  528.     set FileSource  = $(!STF_SRCDIR)$(PRODUCT_DIR)
  529.     ForListDo $(FileSectionsList)
  530.         set FileSection = $($)
  531.         set FileDest    = $($($))
  532.         set FileList    = ^($(FileSection), 0)
  533.         ForListDo $(FileList)
  534.             set FileKey = $($)
  535.             set File    = #($(FileSection), $(FileKey), 2)
  536.             set NEWFILE = $(File)
  537.             set FileDestFullPath = $(FileDest)\$(File)
  538.             install Install-File
  539.         EndForListDo
  540.     EndForListDO
  541.     read-syms ProgressCopy$(!STF_LANGUAGE)
  542.     install   Install-DoCopy
  543.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  544.         goto patchnotdone
  545.     else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  546.         goto patchnotdone
  547.     endif
  548. processmovefileex=+
  549.     ForListDo $(MoveFileExList)
  550.         set ExistingPath = *($($), 1)
  551.         set NewPath      = *($($), 2)
  552.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), CopyFileOnReboot $(ExistingPath) $(NewPath)
  553.         ifstr(i) $(STATUS) == ERROR
  554.             goto patchnotdone
  555.         endif
  556.     EndForListDo
  557.     ifstr(i) $(!STF_PLATFORM) == I386
  558.         set NtLdrPath = $(STF_OSLDEST)"ntldr"
  559.         LibraryProcedure STATUS, $(!PATCHLIBHANDLE), ForceFileNoCompress $(NtLdrPath)
  560.         ifstr(i) $(STATUS) == ERROR
  561.             goto patchnotdone
  562.         endif
  563.     endif
  564. patchdone =+
  565.     ifstr(i) $(BillboardPushed) == TRUE
  566.         shell "subroutn.inf" PopBillboard
  567.         set BillboardPushed = FALSE
  568.     endif
  569.     shell "" DoRegistryModifications $(!STF_CSDVER)
  570.     read-syms SetupDoneDlg$(!STF_LANGUAGE)
  571.     ui start "SetupDone"
  572.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  573.         ui pop 1
  574.         goto rebootend
  575.     else
  576.         ui pop 1
  577.         goto finish1
  578.     endif
  579. patchnotdone =+
  580.     set String = $(String2)
  581. finish2 =+
  582.     ifstr(i) $(BillboardPushed) == TRUE
  583.         shell "subroutn.inf" PopBillboard
  584.         set BillboardPushed = FALSE
  585.     endif
  586.     shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String)
  587.     goto finish1
  588. finish1 =+
  589.     install   FreeSetupLibrary
  590. finish =+
  591.     install   FreePatchLibrary
  592.     exit
  593. rebootend =+
  594.     set Reboot = YES
  595.     install   Install-Shutdown
  596.     goto finish1
  597.     exit
  598. [LoadPatchLibrary]
  599.     LoadLibrary "x" patchdll.dll !PATCHLIBHANDLE
  600.     exit
  601. [FreePatchLibrary]
  602.     ifstr(i) $(!PATCHLIBHANDLE) != ""
  603.         FreeLibrary $(!PATCHLIBHANDLE)
  604.     endif
  605.     exit
  606. [LoadSetupLibrary]
  607.     LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
  608.     exit
  609. [FreeSetupLibrary]
  610.     ifstr(i) $(!LIBHANDLE) != ""
  611.         FreeLibrary $(!LIBHANDLE)
  612.     endif
  613.     exit
  614. [Install-File]
  615.     set STF_VITAL = ""
  616.     AddSectionKeyFileToCopyList $(FileSection) $(FileKey) $(FileSource) $(FileDest)
  617.     exit
  618. [Install-DoCopy]
  619.     CopyFilesInCopyList
  620.     exit
  621. [Install-Shutdown]
  622.     LibraryProcedure STATUS,$(!LIBHANDLE),ShutdownSystem $(Reboot)
  623.     exit
  624. [RegistryConstants]
  625.     MaskAllAccess          = 33554432
  626.     NoTitle                = 0
  627.     RegLastError           = $(!REG_ERROR_SUCCESS)
  628. [DoRegistryModifications]
  629.     set Status = STATUS_FAILED
  630.     read-syms RegistryConstants
  631.     set KeyPath   = { +
  632.                      {SOFTWARE,                $(NoTitle), $(MaskAllAccess)}, +
  633.                      {Microsoft,               $(NoTitle), $(MaskAllAccess)}, +
  634.                      {"Windows NT",            $(NoTitle), $(MaskAllAccess)}, +
  635.                      {CurrentVersion,          $(NoTitle), $(MaskAllAccess)}, +
  636.                      {"Time Zones",            $(NoTitle), $(MaskAllAccess)}, +
  637.                      {"E. South America Standard Time",     $(NoTitle), $(MaskAllAccess)}  +
  638.                     }
  639.     set KeyValues = { +
  640.                      {Display, $(NoTitle), $(!REG_VT_SZ), "(GMT-03:00) Brasilia" } +
  641.                     }
  642.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  643.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  644.         goto endCSDVersionCreate
  645.     endif
  646.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  647.         goto endCSDVersionCreate
  648.     else
  649.         CloseRegKey $($R1)
  650.     endif
  651.     set KeyPath   = { +
  652.                      {SYSTEM,                  $(NoTitle), $(MaskAllAccess)}, +
  653.                      {ControlSet001,           $(NoTitle), $(MaskAllAccess)}, +
  654.                      {Control,                 $(NoTitle), $(MaskAllAccess)}, +
  655.                      {ServiceGroupOrder,       $(NoTitle), $(MaskAllAccess)}  +
  656.                     }
  657.     set KeyValues = { +
  658.                      {List, $(NoTitle), $(!REG_VT_MULTI_SZ), {                       +
  659.                                                               "System Bus Extender", +
  660.                                                               "SCSI miniport",       +
  661.                                                               "port",                +
  662.                                                               "Primary disk",        +
  663.                                                               "SCSI class",          +
  664.                                                               "SCSI CDROM class",    +
  665.                                                               "filter",              +
  666.                                                               "boot file system",    +
  667.                                                               "Base",                +
  668.                                                               "Pointer Port",        +
  669.                                                               "Keyboard Port",       +
  670.                                                               "Pointer Class",       +
  671.                                                               "Keyboard Class",      +
  672.                                                               "Video Init",          +
  673.                                                               "Video",               +
  674.                                                               "Video Save",          +
  675.                                                               "file system",         +
  676.                                                               "Event log",           +
  677.                                                               "Streams Drivers",     +
  678.                                                               "NDIS",                +
  679.                                                               "TDI",                 +
  680.                                                               "NetBIOSGroup",        +
  681.                                                               "SpoolerGroup",        +
  682.                                                               "NetDDEGroup",         +
  683.                                                               "Parallel arbitrator", +
  684.                                                               "extended base",       +
  685.                                                               "RemoteValidation",    +
  686.                                                               "PCI Configuration"    +
  687.                                                              } }  +
  688.                     }
  689.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  690.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  691.         goto endCSDVersionCreate
  692.     endif
  693.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  694.         goto endCSDVersionCreate
  695.     else
  696.         CloseRegKey $($R1)
  697.     endif
  698.     set KeyPath   = { +
  699.                      {SYSTEM,                  $(NoTitle), $(MaskAllAccess)}, +
  700.                      {CurrentControlSet,       $(NoTitle), $(MaskAllAccess)}, +
  701.                      {Control,                 $(NoTitle), $(MaskAllAccess)}, +
  702.                      {Lsa,                     $(NoTitle), $(MaskAllAccess)}  +
  703.                     }
  704.     set KeyValues = { +
  705.                      {UpgradeSam, $(NoTitle), $(!REG_VT_DWORD), 1} +
  706.                     }
  707.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  708.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  709.         goto endCSDVersionCreate
  710.     endif
  711.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  712.         goto endCSDVersionCreate
  713.     else
  714.         CloseRegKey $($R1)
  715.     endif
  716.     set KeyPath   = { +
  717.                      {SYSTEM,            $(NoTitle), $(MaskAllAccess)}, +
  718.                      {CurrentControlSet, $(NoTitle), $(MaskAllAccess)}, +
  719.                      {Control,           $(NoTitle), $(MaskAllAccess)}, +
  720.                      {ProductOptions,    $(NoTitle), $(MaskAllAccess)}, +
  721.                     }
  722.     set KeyValues = { +
  723.                      {CSDVersion, $(NoTitle), $(!REG_VT_DWORD), $($0) } +
  724.                     }
  725.     shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValues)
  726.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  727.         goto endCSDVersionCreate
  728.     endif
  729.     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  730.         goto endCSDVersionCreate
  731.     else
  732.         CloseRegKey $($R1)
  733.     endif
  734.     set Status = STATUS_SUCCESSFUL
  735. endCSDVersionCreate = +
  736.     Return $(Status)
  737. [GetCSDVersion]
  738.     set Status = STATUS_SUCCESSFUL
  739.     read-syms RegistryConstants
  740.     set CSDVersion = 0
  741.     set KeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions"
  742.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  743.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  744.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  745.         goto end_GetCSDVersion
  746.     endif
  747.     GetRegValue $(KeyHandle) "CSDVersion" CSDVersionValue
  748.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  749.         CloseRegKey $(KeyHandle)
  750.         goto end_GetCSDVersion
  751.     endif
  752.     set CSDVersion =  *($(CSDVersionValue), 4)
  753.     CloseRegKey $(KeyHandle)
  754. end_GetCSDVersion = +
  755.     Return $(Status) $(CSDVersion)
  756. [GetCheckedFree]
  757.     set Status = STATUS_SUCCESSFUL
  758.     read-syms RegistryConstants
  759.     set System = Free
  760.     set KeyName = "Software\Microsoft\Windows NT\CurrentVersion"
  761.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  762.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  763.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  764.         goto end_GetCheckedFree
  765.     endif
  766.     GetRegValue $(KeyHandle) "CurrentType" CurrentTypeValue
  767.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  768.         CloseRegKey $(KeyHandle)
  769.         goto end_GetCheckedFree
  770.     endif
  771.     Split-String *($(CurrentTypeValue), 4) " " CurrentTypeList
  772.     ForListDo $(CurrentTypeList)
  773.        ifstr(i) $($) == "free"
  774.           set System = free
  775.        else-ifstr(i) $($) == "checked"
  776.           set System = checked
  777.        endif
  778.     EndForListDo
  779.     CloseRegKey $(KeyHandle)
  780. end_GetCheckedFree = +
  781.     Return $(Status) $(System)
  782. [QueryOkCancel]
  783.     set DlgText = $($0)
  784.     read-syms QueryOKCancelDlg$(!STF_LANGUAGE)
  785.     ui start "SetupMessage"
  786.     ifstr(i) $(DLGEVENT) == "OK"
  787.         set Status     = STATUS_SUCCESSFUL
  788.         set UserAction = $(DLGEVENT)
  789.     else-ifstr(i) $(DLGEVENT) == "CANCEL"
  790.         set Status     = STATUS_SUCCESSFUL
  791.         set UserAction = $(DLGEVENT)
  792.     else
  793.         set Status     = STATUS_FAILED
  794.         set UserAction = "CANCEL"
  795.     endif
  796.     Return $(Status) $(UserAction)
  797. [Source Media Descriptions]
  798.     1 = "Windows NT Workstation CD-ROM" , TAGFILE = cdrom.w
  799. [Signature]
  800.     FileType = MICROSOFT_FILE
  801. [GetSignature]
  802.     read-syms Signature
  803.     return $(FileType)
  804. [ProductType]
  805. STF_PRODUCT  = Winnt
  806. STF_PLATFORM = Mips
  807. [Source Media Descriptions]
  808.     1  = "Windows NT 3.51 Update Disk #1"  , TAGFILE = disk1
  809.     2  = "Windows NT 3.51 Update Disk #2"  , TAGFILE = disk2
  810.     3  = "Windows NT 3.51 Update Disk #3"  , TAGFILE = disk3
  811.     4  = "Windows NT 3.51 Update Disk #4"  , TAGFILE = disk4
  812.     5  = "Windows NT 3.51 Update Disk #5"  , TAGFILE = disk5
  813.     6  = "Windows NT 3.51 Update Disk #6"  , TAGFILE = disk6
  814.     7  = "Windows NT 3.51 Update Disk #7"  , TAGFILE = disk7
  815.     8  = "Windows NT 3.51 Update Disk #8"  , TAGFILE = disk8
  816.     9  = "Windows NT 3.51 Update Disk #9"  , TAGFILE = disk9
  817.     10 = "Windows NT 3.51 Update Disk #10" , TAGFILE = disk10
  818. [Strings]
  819.     String1 = "This update disk cannot be used on this platform."
  820.     String2 = "Setup failed to update the system."
  821.     String3 = "Setup has successfully updated your system."
  822.     String4 = "You do not have permission to update the system.  Please contact your system administrator."
  823.     String5 = "Setup failed to setup your updated files for secure operation."
  824.     String8 = "Setup has detected that the version of the system installed is "+
  825.               "newer than the update you are applying to it.  The update can render "+
  826.               "your system unstartable.  Press OK if you still wish to continue "+
  827.               "or press Cancel to exit Setup."
  828.     String9 = "Setup is going to update your Windows NT system with the English "+
  829.               "version of the update program.  If you wish to cancel the update "+
  830.               "process, please press Cancel or press OK to continue."
  831.     String11 = "Setup couldn't find the setup.log file in your repair directory. "+
  832.                "Setup cannot proceed to update your system.  Please copy the setup.log "+
  833.                "file from your Emergency Repair Disk to your repair directory "+
  834.                "and restart the update."
  835.     String12 = "Setup has not updated your system.  If you wish to update your "+
  836.                "system please run the update utility again."
  837.     String13a = "Not enough hard disk space to run Setup.  Setup needs at least "
  838.     String13b = "MB of free hard disk space on "
  839.     String13c = " before it can be run.  Delete some"+
  840.                 " files and run the Update program again."
  841.     String14  = "Setup cannot update your Windows NT files because it could not "+
  842.                 "determine your product type.  Your registry may be corrupt."
  843.     String15  = "Setup cannot update your checked system.  The update can only "+
  844.                 "be applied to the retail system."
  845.     String16  = "Setup cannot update your Windows NT files because your system is "+
  846.                 "NT 3.1 or NT 3.5. Please upgrade your system to the retail Windows NT 3.51, "+
  847.                 "and then update your system."
  848.     String17  = "Setup cannot update your Windows NT files because your system is "+
  849.                 "a pre-release of NT 3.51. Please upgrade your system to the retail "+
  850.                 "Windows NT 3.51, and then update your system."
  851.     String18  = "Setup cannot update your Windows NT files because your system is "+
  852.                 "a version later than NT 3.51.  The update can only be applied "+
  853.                 "to Windows NT 3.51."
  854.     String19  = "Setup cannot update your Windows NT files because you have installed "+
  855.                 "the IBM Power Management version of NT 3.51.  Please see IBM for "+
  856.                 "a Service Pack that can be installed on your system."
  857.     Billboard1 = "Please wait..."
  858.     Billboard2 = "Please wait while the files to be updated are determined..."
  859.     Billboard3 = "Please wait while the Emergency Repair Disk is updated..."
  860. [ProgressCopyENG]
  861.     ProCaption   = "Windows NT Setup"
  862.     ProCancel    = "Cancel"
  863.     ProCancelMsg = "The Windows NT 3.51 files are not completely updated.  Are you sure you want "+
  864.                    "to cancel copying files?"
  865.     ProCancelCap = "Setup Message"
  866.     ProText1     = "Copying:"
  867.     ProText2     = "To:"
  868. [SetupDoneDlgENG]
  869.     Caption     = "Windows NT Setup"
  870.     DlgText     = "Windows NT 3.51 has been updated. If you change or add "+
  871.                   "any components to your system, you will need to "+
  872.                   "reapply the update."$(!LF)$(!LF)+
  873.                   "Remove disks from the floppy disk drives and "+
  874.                   "choose Restart Computer to run the updated system."
  875.     Reboot      = "&Restart Computer"
  876.     Windows     = "E&xit to Windows NT"
  877.     DlgType     = "Info"
  878.     DlgTemplate = "REBOOT"
  879. [QueryOKCancelDlgENG]
  880.     STF_MB_TITLE = "Setup Message"
  881.     DlgType      = "MessageBox"
  882.     STF_MB_TEXT  = $(DlgText)
  883.     STF_MB_TYPE  = 2
  884.     STF_MB_ICON  = 4
  885.     STF_MB_DEF   = 1
  886.